1. Field of the Invention
The present invention relates to cloud computing. More specifically, the present invention relates to a system and method for synchronization of a web application to at least one cloud provider.
2. Description of the Related Art
In general terms, cloud computing provides a developer (individual or company) to have access to resources for a Web application, in particular a web site. Various vendors provide cloud computing to the developer community. Such vendors include JOYENT (see joyent.com), Amazon Web Services (See amazon.com), Google App Engine (see http://code.google.com/appengine/) and others.
General definitions for terms utilized in the pertinent art are set forth below.
Applets or Java Applets are mini-executable programs named with the .class suffix and are placed on the web page and provide interactive and multimedia uses.
Application Programming Interface (API) is a collection of computer software code, usually a set of class definitions, that can perform a set of related complex tasks, but has a limited set of controls that may be manipulated by other software-code entities. The set of controls is deliberately limited for the sake of clarity and ease of use, so that programmers do not have to work with the detail contained within the given API itself.
Asynchronous Server-Side Processing is a means for avoiding having to reload a new page for every request sent by a client and involves placing a intermediary between a client and server in order to send a request to the intermediary (i.e. XMLHttpRequest object) which sends it to the server for processing and receives the response from the server for passing on to the client.
Boot or Bootstrap refers to loading the first piece of software that starts a computer since the operating system is essential for running all other programs, it is usually the first piece of software loaded during the boot process.
A Channel is information about organized content on an intranet or the Internet. Channels enable Web developers to categorize and describe Web site content and make that data available to users on demand.
Cloud computing is generally defined as using computing resources, primarily servers, owned by a third party provider (such as the AMAZON ELASTIC COMPUTE CLOUD, JOYENT, and GOOGLE APPS) such that the user does not need to make a substantial investment in computer hardware and scale resources depending on the user's needs. Cloud computing primarily involves Web applications but can include storage, raw computing and other specialized services.
FTP or File Transfer Protocol is a protocol for moving files over the Internet from one computer to another.
HyperText Markup Language (HTML) is a method of mixing text and other content with layout and appearance commands in a file, so that a browser can generate a display from the file.
Hypertext Transfer Protocol (HTTP) is a set of conventions for controlling the transfer of information via the Internet from a Web server computer to a client computer, and also from a client computer to a Web server.
Internet is the worldwide, decentralized totality of server computers and data-transmission paths which can supply information to a connected client computer, and can receive and forward information entered from the client computer.
JavaScript is an object-based programming language. JavaScript is an interpreted language, not a compiled language. JavaScript is generally designed for writing software routines that operate within a client computer on the Internet. Generally, the software routines are downloaded to the client computer at the beginning of the interactive session, if they are not already cached on the client computer. JavaScript is discussed in greater detail below.
JSON is JavaScript Object Notation format, which is a way of taking data and turning it into valid a representation of program information that can be read by another program.
MySQL is a relational database management system which relies on SQL for processing data in a database.
Parser is a component of a compiler that analyzes a sequence of tokens to determine its grammatical structure with respect to a given formal grammar. Parsing transforms input text into a data structure, usually a tree, which is suitable for later processing and which captures the implied hierarchy of the input. XML Parsers ensure that an XML document follows the rules of XML markup syntax correctly.
Platform is the combination of a client computer, an operating system, and a browser, which together can support HTTP access and in particular the operation of interactive forms.
Portlet is a Web based component that will process requests and generate dynamic content. The end-user essentially sees a portlet as being a specialized content area within a Web page that occupies a small window. One could use this content area (the portlet) to receive different types of information. The portlet provides users with the capability to customize the content, appearance and position of the portlet.
Provisioning is the act of supplying and configuring computing resources, primarily servers, for a web application.
Pulling or Pull Technology is technology that enables Web browsers to retrieve information from a Web server such as updating information at periodic intervals, essentially Web browser initiated activity.
Pushing or Push Technology is technology that initiates delivery of material from a server to a properly configured Web browser, such as providing automatic updates to a Web browser.
Serialization places an object in a binary form for transmission across a network such as the Internet and deserialization involves extracting a data structure from a series of bytes.
Servlets are objects that receive requests and generate a response based on that request.
SQL (Structured Query Language) is a computer language designed for data retrieval and data management in a database.
Structural layer of a web page is the marked up document and foundation on which other layers may be applied.
URL or Uniform Resource Locator is a address on the World Wide Web.
User is a client computer, generally operated by a human being, but in some system contexts running an automated process not under full-time human control.
User Interface or UI is the junction between a user and a computer program. An interface is a set of commands or menus through which a user communicates with a program. A command driven interface is one in which the user enter commands. A menu-driven interface is one in which the user selects command choices from various menus displayed on the screen.
Web-Browser is a complex software program, resident in a client computer, that is capable of loading and displaying text and images and exhibiting behaviors as encoded in HTML (HyperText Markup Language) from the Internet, and also from the client computer's memory. Major browsers include MICROSOFT INTERNET EXPLORER, NETSCAPE, APPLE SAFARI, MOZILLA FIREFOX, and OPERA.
Web-Server is a computer able to simultaneously manage many Internet information-exchange processes at the same time. Normally, server computers are more powerful than client computers, and are administratively and/or geographically centralized. An interactive-form information-collection process generally is controlled from a server computer.
World Wide Web Consortium (W3C) is an unofficial standards body which creates and oversees the development of web technologies and the application of those technologies.
XHTML (Extensible Hypertext Markup Language) is a language for describing the content of hypertext documents intended to be viewed or read in a browser.
XML (Extensible Markup Language) is a W3C standard for text document markup, and it is not a language but a set of rules for creating other markup languages. As shown in FIG. 1A, a cloud computing system 20′ of the prior art generally involves a single cloud provider 28′ which is accessed from a user 22′ at a user interface 24′ over a network such as the Internet. The user 22′ can only work with the single cloud provider 28′ and is provided very little information about the performance of the web application on the cloud provider 28′. Further, in order to scale up, the user 22′ must repeat the uploading process.
However, current technologies fail to provide a system and method for facilitated synchronization of a web application to a single cloud provider, and also fail to provide a system and method for synchronization of a web application to multiple cloud providers.